home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 19
/
CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso
/
CUCD
/
Utilities
/
WBStars
/
source
/
WBStars_colors.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-07-23
|
1KB
|
62 lines
/* $VER: WBStars_colors.c 1.11 (23.07.1996) */
#include "WBStars_include.h"
#include "WBStars_protos.h"
#include "WBStars_gui.h"
char coltemplate[16][3]={
3, 0, 7, 0, 1, 8, 0, 5, 8, 0, 9, 9,
0, 10, 6, 0, 11, 3, 0, 12, 0, 5, 13, 0,
10, 14, 0, 15, 15, 0, 15, 12, 0, 15, 10, 0,
15, 7, 0, 15, 5, 0, 15, 2, 0, 15, 0, 0};
char coltable[16][16];
char colavail[256][3];
char contrast=CONTRAST;
void ColorTable()
{
short i,j,k;
ULONG color;
double dist;
double mindist;
short r1,g1,b1;
for(i=0;i<anzcolors;i++)
{
color=GetRGB4(colmap,(long)i);
colavail[i][0]=(color>>8)&15;
colavail[i][1]=(color>>4)&15;
colavail[i][2]=color&15;
}
for(i=0;i<16;i++)
{
for(j=0;j<16;j++)
{
r1=(contrast*coltemplate[j][0]+16*(16-contrast))*(i+5)/320;
g1=(contrast*coltemplate[j][1]+16*(16-contrast))*(i+5)/320;
b1=(contrast*coltemplate[j][2]+16*(16-contrast))*(i+5)/320;
mindist=-1.0;
for(k=0;k<anzcolors;k++)
{
if( (k!=bgpen) && (((dist=sqrt(pow((double)(r1-colavail[k][0]),2.0)+pow((double)(g1-colavail[k][1]),2.0)+pow((double)(b1-colavail[k][2]),2.0)))<mindist)||(mindist<0.0)) )
{
mindist=dist;
coltable[i][j]=k;
}
}
}
}
if(gui)
{
for(i=0;i<16;i++)
{
for(j=0;j<16;j++)
{
SetAPen(WBStarsWnd->RPort,coltable[15-j][15-i]);
WritePixel(WBStarsWnd->RPort,i+WBStarsWnd->BorderLeft+3,j+WBStarsWnd->BorderTop+3);
}
}
}
}